﻿
namespace SimpleORM
{
    //    //[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    //    internal abstract class InvokeDbAttribute //: InvokeTargetAttribute
    //    {
    //        #region Fields

    //        //protected Querybase QueryContext { get; private set; }

    //        protected int EventID { get; set; }

    //        #endregion

    //        #region Properties

    //        #endregion

    //        #region Ctor

    //        public InvokeDbAttribute()
    //        {
    //        }

    //        #endregion

    //        #region Methods

    //        #region Methods - Public

    //        //public override void Initialize(AOPTarget target)
    //        //{
    //        //    QueryContext = target as Querybase;
    //        //}

    //        public  object Do(IMethodCallMessage method, object arg)
    //        {
    //            //WriteInfomation(EventID, ToString());
    //            return null;
    //        }

    //        #endregion

    //        #region Methods - Protected

    //        protected string BuildKey()
    //        {
    //            //StringBuilder b = new StringBuilder(QueryContext.CommandContext.CommandText.ToString());
    //            //foreach (var item in QueryContext.CommandContext.Parameters)
    //            //    b.Append(string.Format("({0})", item.ValueString));

    //            //return b.ToString();
    //            return null;
    //        }

    //        #endregion

    //        #region Methods - Override

    //        public override string ToString()
    //        {
    //            return null;
    //           // return new EdQuery().GetName(EventID);
    //        }

    //        #endregion

    //        #endregion
    //    }
    //    //[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    //    internal class OutputCommandAttribute : InvokeDbAttribute
    //    {
    //        #region Properties

    //        #endregion

    //        #region Fields

    //        #endregion

    //        #region Ctor

    //        public OutputCommandAttribute()
    //        {
    //            //ExecuteCondition = eInvokeCondition.InvokeBegin;
    //            //EventID = EdQuery.langOutputCommand;
    //            //Order = 4;
    //        }

    //        #endregion

    //        #region Methods

    //        #region Methods - Override

    //        public   object Do(IMethodCallMessage method, object arg)
    //        {
    //#if !DEBUG

    //            if (!QueryContext.Settings.PrintCommand)
    //                return null;

    //#endif

    //            //TrackerObject obj = new TrackerObject()
    //            //{
    //            //    EventID = EventID,
    //            //    Grade = eMessageGrade.Infomation,
    //            //    Description = new EdQuery().GetName(EventID),
    //            //    Source = this.GetType().FullName,
    //            //};

    //            //Tracker.WriteLine(obj);

    //            //IQuerybase qc = arg as IQuerybase;
    //            //if (qc == null)
    //            //    qc = QueryContext;

    //            //obj = new TrackerObject()
    //            //{
    //            //    EventID = EdQuery.langOutputCommand,
    //            //    Grade = eMessageGrade.Infomation,
    //            //    Description = BuildKey(),
    //            //    Source = QueryContext.ToString(),
    //            //};

    //            //Tracker.WriteLine(obj);

    //            return null;
    //        }

    //        #endregion

    //        #endregion
    //    }
}
